<?php
include 'config.php'; // Konekcija na bazu

// Valuta je AVANS
$valuta = "AVANS";

// Dohvat klijenata iz tablice 'klijenti'
$klijenti = array();
$sql_klijenti = "SELECT sifra, naziv_klijenta FROM klijenti ORDER BY naziv_klijenta ASC";
$result = $conn->query($sql_klijenti);
if ($result) {
    while ($row = $result->fetch_assoc()) {
        $klijenti[$row['sifra']] = $row['naziv_klijenta'];
    }
} else {
    die("Error fetching klijenti: " . $conn->error);
}

// Dohvat napomena iz tablice 'napomena'
$napomene = array();
$sql_napomene = "SELECT id_napomena, tekst_napomena FROM napomena ORDER BY id_napomena ASC";
$result = $conn->query($sql_napomene);
if ($result) {
    while ($row = $result->fetch_assoc()) {
        $napomene[$row['id_napomena']] = $row['tekst_napomena'];
    }
} else {
    die("Error fetching napomene: " . $conn->error);
}

// Automatsko generiranje broja avansnog računa
$sql_last = "SELECT doc_number FROM document_header WHERE document_type_id = 1 ORDER BY id DESC LIMIT 1";
$result_last = $conn->query($sql_last);
if ($result_last && $result_last->num_rows > 0) {
    $row_last = $result_last->fetch_assoc();
    $last_doc = $row_last['doc_number']; // npr. "AR01/2023"
    $parts = explode("/", $last_doc);
    $num_part = str_replace("AR", "", $parts[0]);
    $next_num = intval($num_part) + 1;
    $next_num_str = str_pad($next_num, 2, "0", STR_PAD_LEFT);
    $next_doc_number = "AR" . $next_num_str . "/" . date("Y");
} else {
    $next_doc_number = "AR01/" . date("Y");
}
?>
<?php include('header.html'); ?>

<!DOCTYPE html>
<html lang="hr">
<head>
  <meta charset="UTF-8">
  <title>Avansni Račun</title>
  <style>
    /* Minimalni CSS za preglednost */
    .container {
      width: 90%;
      margin: 0 auto;
      font-family: Arial, sans-serif;
    }
    .row {
      display: flex;
      flex-wrap: wrap;
      margin-bottom: 15px;
    }
    .col {
      padding: 5px;
    }
    .col-33 {
      flex: 0 0 33%;
    }
    .col-100 {
      flex: 0 0 100%;
    }
    label {
      display: block;
      margin-bottom: 5px;
      font-weight: bold;
    }
    input[type="text"],
    input[type="date"],
    input[type="number"],
    select,
    textarea {
      width: 100%;
      padding: 5px;
      box-sizing: border-box;
    }
    table {
      width: 100%;
      border-collapse: collapse;
      margin-top: 10px;
      margin-bottom: 10px;
    }
    table, th, td {
      border: 1px solid #ccc;
    }
    th, td {
      padding: 8px;
      text-align: left;
    }
    button {
      padding: 8px 12px;
      margin-right: 5px;
    }
  </style>
</head>
<div style="text-align: center; margin: 40px 0;">
    <a href="index.php" style="display: inline-block; padding: 15px 30px; background: #27ae60; color: white; text-decoration: none; border-radius: 8px; box-shadow: 0 3px 6px rgba(0,0,0,0.16);">
        ← Vratite se na početnu
    </a>
</div>
<body>
<form method="post" action="spremi_avansni_racun.php">
  <div class="container">
    <!-- Prva sekcija: Podaci o klijentu i osnovne informacije -->
    <div class="row">
      <!-- Lijeva kolona: Podaci o klijentu -->
      <div class="col col-33">
        <h3>Podaci o klijentu</h3>
        <select name="klijent" id="klijent">
          <?php foreach ($klijenti as $id => $naziv): ?>
            <option value="<?php echo $id; ?>"><?php echo $naziv; ?></option>
          <?php endforeach; ?>
        </select>
        <div>
          <label>Mjesto izdavanja:</label>
          <span>Mrkonjić Grad</span>
        </div>
        <div>
          <label>Datum izdavanja:</label>
          <input type="date" name="doc_date" id="doc_date">
        </div>
        <div>
          <label>Valuta:</label>
          <input type="text" name="valuta" id="valuta" value="<?php echo $valuta; ?>" readonly>
        </div>
      </div>
      <!-- Srednja kolona: PREDRAČUN/Ugovovor -->
      <div class="col col-33" style="display: flex; flex-direction: column; justify-content: center;">
        <label>PREDRAČUN/Ugovovor:</label>
        <input type="text" name="predracun_ugovor" id="predracun_ugovor">
      </div>
      <!-- Desna kolona: Odgovorna osoba -->
      <div class="col col-33" style="display: flex; flex-direction: column; justify-content: center;">
        <label>Odgovorna osoba:</label>
        <span>Duško Cvijić</span>
      </div>
    </div>

    <!-- Druga sekcija: Naslov avansnog računa s automatski generiranim brojem -->
    <div class="row">
      <div class="col col-100">
        <h2>AVANSNI RACUN <?php echo $next_doc_number; ?></h2>
      </div>
    </div>

    <!-- Treća sekcija: Stavke računa -->
    <div class="row">
      <div class="col col-100">
        <table id="stavkeTabela">
          <thead>
            <tr>
              <th>Šifra</th>
              <th>Naziv</th>
              <th>Vrijednost bez PDV</th>
              <th>PDV 17%</th>
              <th>Vrijednost sa PDV</th>
            </tr>
          </thead>
          <tbody>
            <!-- Dinamički dodavani redovi -->
          </tbody>
        </table>
        <button type="button" id="dodajStavku">Dodaj stavku</button>
        <button type="button" id="obrisiStavku">Obriši stavku</button>
      </div>
    </div>

    <!-- Četvrta sekcija: Rekapitulacija -->
    <div class="row">
      <div class="col" style="margin-left: auto; max-width: 300px;">
        <div>
          <label>Osnova:</label>
          <input type="text" name="osnova" id="osnova" readonly>
        </div>
        <div>
          <label>PDV:</label>
          <input type="text" name="pdv" id="pdv" readonly>
        </div>
        <div>
          <label>Plačeno:</label>
          <input type="text" name="placeno" id="placeno" readonly>
        </div>
      </div>
    </div>

    <!-- Peta sekcija: Napomena -->
    <div class="row">
      <div class="col col-100">
        <label>Napomena:</label>
        <select name="napomena" id="napomena">
          <?php foreach ($napomene as $id => $tekst): ?>
            <option value="<?php echo $id; ?>"><?php echo $tekst; ?></option>
          <?php endforeach; ?>
        </select>
      </div>
    </div>

    <!-- Sekcija za spremanje forme -->
    <div class="row">
      <div class="col col-100" style="text-align: center;">
        <button type="submit" id="spremiAvansniRacun">Spremi Avansni Račun</button>
      </div>
    </div>
  </div>
</form>

<script>
// Funkcija za kreiranje novog reda u tabeli stavki
function createRow() {
    var tbody = document.querySelector("#stavkeTabela tbody");
    var tr = document.createElement("tr");

    // Šifra
    var tdSifra = document.createElement("td");
    var inputSifra = document.createElement("input");
    inputSifra.type = "text";
    inputSifra.name = "sifra[]";
    tdSifra.appendChild(inputSifra);
    tr.appendChild(tdSifra);

    // Naziv (textarea)
    var tdNaziv = document.createElement("td");
    var textareaNaziv = document.createElement("textarea");
    textareaNaziv.name = "naziv[]";
    textareaNaziv.rows = 2;
    textareaNaziv.cols = 20;
    tdNaziv.appendChild(textareaNaziv);
    tr.appendChild(tdNaziv);

    // Vrijednost bez PDV
    var tdBezPDV = document.createElement("td");
    var inputBezPDV = document.createElement("input");
    inputBezPDV.type = "number";
    inputBezPDV.name = "bez_pdv[]";
    inputBezPDV.step = "0.01";
    inputBezPDV.addEventListener("input", function() {
        calculateRowForRow(tr);
        calculateTotals();
    });
    tdBezPDV.appendChild(inputBezPDV);
    tr.appendChild(tdBezPDV);

    // PDV 17%
    var tdPDV = document.createElement("td");
    var inputPDV = document.createElement("input");
    inputPDV.type = "number";
    inputPDV.name = "pdv[]";
    inputPDV.step = "0.01";
    inputPDV.value = "17";
    inputPDV.readOnly = true;
    tdPDV.appendChild(inputPDV);
    tr.appendChild(tdPDV);

    // Vrijednost sa PDV
    var tdSaPDV = document.createElement("td");
    var inputSaPDV = document.createElement("input");
    inputSaPDV.type = "number";
    inputSaPDV.name = "sa_pdv[]";
    inputSaPDV.step = "0.01";
    inputSaPDV.readOnly = true;
    tdSaPDV.appendChild(inputSaPDV);
    tr.appendChild(tdSaPDV);

    tbody.appendChild(tr);
}

// Funkcija za izračunavanje vrijednosti sa PDV za jedan red
function calculateRowForRow(tr) {
    var inputBezPDV = tr.querySelector('input[name="bez_pdv[]"]');
    var inputSaPDV = tr.querySelector('input[name="sa_pdv[]"]');
    var bezPDV = parseFloat(inputBezPDV.value) || 0;
    var pdvProcenat = 17;
    var saPDV = bezPDV + (bezPDV * pdvProcenat / 100);
    inputSaPDV.value = saPDV.toFixed(2);
}

// Funkcija za izračunavanje ukupnih vrijednosti (rekapitulacija)
function calculateTotals() {
    var tbody = document.querySelector("#stavkeTabela tbody");
    var rows = tbody.getElementsByTagName("tr");
    var totalBezPDV = 0;
    var totalPDV = 0;
    var totalSaPDV = 0;

    for (var i = 0; i < rows.length; i++) {
        var inputBezPDV = rows[i].querySelector('input[name="bez_pdv[]"]');
        var bezPDV = parseFloat(inputBezPDV.value) || 0;
        var pdvValue = bezPDV * 17 / 100;
        var saPDV = bezPDV + pdvValue;

        totalBezPDV += bezPDV;
        totalPDV += pdvValue;
        totalSaPDV += saPDV;
    }

    document.getElementById("osnova").value = totalBezPDV.toFixed(2);
    document.getElementById("pdv").value = totalPDV.toFixed(2);
    document.getElementById("placeno").value = totalSaPDV.toFixed(2);
}

// Dodavanje i brisanje redova
document.getElementById("dodajStavku").addEventListener("click", function() {
    createRow();
});
document.getElementById("obrisiStavku").addEventListener("click", function() {
    var tbody = document.querySelector("#stavkeTabela tbody");
    if (tbody.rows.length > 0) {
        tbody.deleteRow(tbody.rows.length - 1);
        calculateTotals();
    }
});
</script>

<?php include('footer.html'); ?>
</body>
</html>
